Modern aircraft systems, such as aircraft air data systems, ice detection systems, auto flight control systems, flight management systems, and other aircraft systems often utilize electronic devices that execute computer-readable instructions in the form of software that controls operation of the device and/or system. For instance, aircraft air data systems typically utilize an air data computer that executes operational software to determine air data parameters, such as aircraft airspeed, altitude, angle of attack, or other air data parameters, and transmits such parameters to consuming systems.
Software verification and testing is important to ensure that the software operates according to an approved design. Indeed, airworthiness certification that is typically managed by governmental certification authorities (e.g., the United States Federal Aviation Administration, the European Aviation Safety Agency, Transport Canada, or other certification authorities) often require that operational software be subjected to a series of rigorous tests to ensure that the software accurately reflects an approved set of design requirements. Such tests are designed to meet specified objectives, such as structural coverage objectives (e.g., Modified Condition Decision Coverage). As an example, the document DO-178C, entitled “Software Considerations in Airborne Systems and Equipment Certification” published by the Radio Technical Commission for Aeronautics (RTCA) is the primary means of obtaining approval of software used in civil aviation products in the United States. DO-178C sets forth, among others, an objective that test coverage of software structure data coupling and control coupling is achieved. Related document DO-331, entitled “Model-Based Development and Verification Supplement to DO-178C and DO-278A,” sets forth explanatory text and software life cycle data that should be addressed when model-based development and verification are used as part of the software life cycle.
To satisfy the objectives of DO-178C in view of DO-331 in a model-based development software life cycle, test conditions are typically written and executed to verify that data coupling and control coupling as described in the design model is achieved by the operational software. The process of identifying data and control coupling within the executable software, as well as confirming that there exist test conditions to verify the corresponding coupling, is typically manual in nature (i.e., performed by a software engineer or other technician). The manual process is time consuming, expensive, and can be prone to human errors in both identifying the coupling and confirming the test coverage of the corresponding test cases.